<template>
    <div class="search">
        <el-autocomplete
            v-model="hosname"
            :fetch-suggestions="fetchData"
            clearable
            class="form"
            placeholder="请输入医院的名称"
            @select="goDetail"
        />
        <el-button type="primary" size="default"><i class="ri-search-line"></i></el-button>
    </div>
</template>

<script setup lang="ts">
import 'remixicon/fonts/remixicon.css'
import { ref } from 'vue';
import { useRouter } from 'vue-router';
// 引入请求方法
import {reqHospitalInfo} from '@/api/home/index'
import type {HospitalInfo,} from '@/api/home/type'
// 创建路由对象
let $router = useRouter()

// 收集搜索的关键字（医院的名字）
let hosname = ref<string>('')
// 顶部组件的回调
const fetchData = async (keyword:string,cb:any) => {
    // 用户输入完关键字函数回执行一次，发送请求获取需要展示的数据即可
    const result:HospitalInfo = await reqHospitalInfo(keyword)
    console.log(result);
    // 整理数据，变成别人需要的格式
    let showData = result.data.map(item => {
        return {
            value:item.hosname,//展示医院的名字
            hoscode:item.hoscode //展示医院的编码
        }
    })
    // 给组件提供展示的户数
    cb(showData)
    
}

// 点击某一个推荐项
const goDetail = (item:any) =>{
    $router.push({path:'/hospital/register',query:{hoscode:item.hoscode}})
    
}

</script>

<style lang="scss" scoped>
.search{
    height: 50px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 30px 0;
    
    // 深度选择器：>>>  /deep/  ::v-deep
    ::v-deep(.el-input__wrapper){
        width: 500px;
        font-size: 10px;
    }


}
</style>